home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8509.arc / VOLABEL.ASM < prev    next >
Assembly Source File  |  1980-01-01  |  2KB  |  62 lines

  1.           PAGE
  2. TITLE     VOLABEL -A VOLUME LABEL WRITING PROGRAM
  3. COMMENT   "        VOLABEL [D:]
  4.           Creates a volume label entry in a root directory.
  5. "
  6. CODE      SEGMENT
  7.           ORG     55H
  8. FLAGBYTE  DB      (?)         ;1ST BYTE OF EXTENDED FCB
  9.           ORG     5BH
  10. ATTRBYTE  DB      (?)         ;ATTRIBUTE BYTE OF EXTENDED FCB SET 
  11. DRIVENUM  DB      (?)         ;DRIVE NUMBER
  12. VOLNAME   DB      11 DUP(?)   ;VOLUME NAME
  13.           ORG     100H
  14.           ASSUME  CS:CODE,DS:CODE,ES:CODE,SS:CODE
  15. VOLABEL   PROC
  16.           ;PRINT PROMPT
  17.           MOV     AH,09H       
  18.           MOV     DX,OFFSET PROMPT
  19.           INT     21H
  20.           ;GET VOLUME LABEL NAME
  21.           MOV     AH,0AH        
  22.           MOV     DX,OFFSET INBUFF
  23.           INT     21H
  24.           ;MOVE VOLUME NAME TO EXTENDED FCB
  25.           XOR     BX,BX       ;CLEAR BX
  26.           MOV     CX,0BH      ;MAXIMUM LOOP ITERATIONS IS 11
  27. NAMELOOP:
  28.           MOV     AH,[INBUFF+BX+2]      ;MOVE CHAR FROM INPUT BUFFER
  29.           CMP     AH,0DH      ;EXIT LOOP IF CHARACTER IS A CARRIAGE RETURN
  30.           JE      LOOPDONE
  31.           MOV     [VOLNAME+BX],AH       ;PLACE CHARACTER IN FCB
  32.           INC     BX          ;POINT TO NEXT CHARACTER
  33.           LOOP    NAMELOOP
  34. LOOPDONE:
  35.           MOV     FLAGBYTE,0FFH         ;SET EXTENDED FCB FLAG
  36.           MOV     ATTRBYTE,08H ;SET ATTRIBUTE BYTE OF EXT FCB FOR VOLUME LABEL
  37.           ;CREATE DIRECTORY ENTRY FOR VOLUME NAME
  38.           MOV     AH,16H      
  39.           MOV     DX,55H      ;SET DX TO START OF EXTENDED FCB
  40.           INT     21H
  41.           ;TEST FOR CREATION ERROR
  42.           OR      AL,AL       ;JUMP IF DIRECTORY ENTRY IS CREATED
  43.           JZ     CREATE_OK
  44.           MOV     AH,9H       ;PRINT CREATION ERROR MESSAGE
  45.           MOV     DX,OFFSET CREATEMSG
  46.           INT     21H
  47.           JMP     VOLABEL_END ;EXIT PROGRAM
  48. CREATE_OK:
  49.           ;CLOSE FILE CREATED BY DIRECTORY ENTRY CREATION
  50.           MOV     AH,10H
  51.           MOV     DX,55H      ;SET DX TO START OF EXTENDED FCB
  52.           INT     21H
  53. VOLABEL_END:
  54.           INT     20H         ;RETURN TO DOS
  55. VOLABEL   ENDP
  56. INBUFF    DB      0CH         ;INPUT BUFFER FOR LABEL NAME
  57.           DB      12 DUP (0)
  58. PROMPT    DB      0DH,0AH,'PLEASE ENTER VOLUME LABEL NAME (11 CHARS. MAX): $'
  59. CREATEMSG DB      0DH,0AH,'UNABLE TO ENTER VOLUME LABEL INTO DIRECTORY$'
  60. CODE      ENDS
  61.           END     VOLABEL
  62.